
/** 后端 */
interface Point{
  x:number;
  y:number;
}

interface Attack{
  weapon: string; //武器名
  radian: number; //攻击方向
}


interface PlayerTransimit{
  id: number;
  position: Point; //玩家位置
  attack?: Attack;
  hp: number; //如果为0从数组中删除, 前端接收后播放死亡动画
}

interface NpcTransimit{
  name: string; //slime, woof
  id: number;
  position: Point; //玩家位置
  attack?: Attack;
  hp: number; //如果为0从数组中删除, 前端接收后播放死亡动画
}

interface DownFrame {
  id: number;
  players: Player[];
  npcs: Npc[];
}

/** 后端 */

/** 前端 */

enum WeaponGenre(FlyItem, Melee);

interface Weapon{
  name: string;
  genre: WeaponGenre; //飞行道具或者近战或者其他
}

interface Npc{
  name: string;
  genre: NpcGenre;
}

const weapons : Weapon[] = [{
  name: "hand_gun",
  genre: WeaponGenre.FlyItem,
},{
  name: "wood_sword",
  genre: WeaponGenre.Melee,
}]

/** 前端 */
